Skip to main content

Custom Images

Create and use custom images in Shakudo Platform

Prerequisites​

The following tools are needed to create a custom Shakudo Platform image:

  • kubectl + kubeconfig access to Shakudo Platform
  • gcloud cli
  • docker

Retrieve and use image pull credentials​

  1. Get and store the credentials from your Shakudo Platform cluster secrets:
kubectl get secrets/image-pull-secret --template="{{index .data \"mothership-key-content.json\" | base64decode}}" > keyfile_mothership.json
  1. Authenticate using Shakudo Platform image pull credentials:
    1. gcloud auth activate-service-account --key-file=keyfile_mothership.json
    2. gcloud config set account mothership@hyperplane-test.iam.gserviceaccount.com
  2. Pulling the basic Shakudo Platform image:
docker pull gcr.io/devsentient-infra/dev/jhub-basic@sha256:65873aad4648282b0f74669cca623205acaca25e9be0180071b620552b77c42b

Create your custom image​

Now that you have the basic Shakudo Platform image, you can follow the normal steps to create a Docker container.

For example, you can create a Dockerfile that looks like this following:

FROM gcr.io/devsentient-infra/dev/jhub-basic:e520b7d74c7c04abc764dd43d60229ffefefb362
RUN pip install [some-packages-here]

You can now build your image (e.g. docker build -t image_name . in the directory of your Dockerfile) and push to your registry (e.g. docker image tag image_name:image_tag registry-host:my-org/image_name:image_tagand docker image push registry-host:my-org/image_name:image_tag) as normal.

Ensure you grant the Shakudo Platform service account permissions to pull your custom image.

Use your custom image in Shakudo Platform​

Select “custom” Session Type (when starting Sessions) or Job Type (when starting Pipeline jobs) and paste your image URL in the text field.